﻿//============================================================
//write by bxl at 2021-06-12 15:53:26
//============================================================

using System;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel.DataAnnotations;

namespace BCDto.TMS.Order.OrderGoodsChecklist
{
    /// <summary>
    /// 订单货物清单 数据模型
    /// </summary>
    public class OrderGoodsChecklistRequestDto
    { 

        /// <summary>
        /// 运输订单Id
        /// </summary>            
        [Display(Name = "运输订单Id")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public long TransportOrderId { get; set; }

        /// <summary>
        /// 运输订单编号
        /// </summary>            
        [Display(Name = "运输订单编号")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public string TransportOrderNo { get; set; }

        /// <summary>
        /// 订单Id
        /// </summary>            
        [Display(Name = "订单Id")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public long? OrderId { get; set; }

        /// <summary>
        /// 订单编号
        /// </summary>            
        [Display(Name = "订单编号")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public string OrderNo { get; set; }

        /// <summary>
        /// 商城订单编号
        /// </summary>            
        [Display(Name = "商城订单编号")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public string MallOrderNo { get; set; }

        /// <summary>
        /// 仓储订单编号
        /// </summary>            
        [Display(Name = "仓储订单编号")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public string StorageOrderNo { get; set; }

        /// <summary>
        /// 给司机捎句话
        /// </summary>            
        [Display(Name = "给司机捎句话")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public string DriverRemark { get; set; }

        /// <summary>
        /// 发货人姓名
        /// </summary>            
        [Display(Name = "发货人姓名")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public string Shipping { get; set; }

        /// <summary>
        /// 发货人电话
        /// </summary>            
        [Display(Name = "发货人电话")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public string ShippingPhone { get; set; }

        /// <summary>
        /// 发货人地址（货物地址）
        /// </summary>            
        [Display(Name = "发货人地址（货物地址）")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public string ShippingAddress { get; set; }

        /// <summary>
        /// 收货人姓名（多卸地保存最后一个）
        /// </summary>            
        [Display(Name = "收货人姓名（多卸地保存最后一个）")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public string Consignee { get; set; }

        /// <summary>
        /// 收货人电话
        /// </summary>            
        [Display(Name = "收货人电话")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public string ConsigneePhone { get; set; }

        /// <summary>
        /// 收货人地址（最终目的地）
        /// </summary>            
        [Display(Name = "收货人地址（最终目的地）")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public string ConsigneeAddress { get; set; }

        /// <summary>
        /// 发货地省份Code
        /// </summary>            
        [Display(Name = "发货地省份Code")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public string ProvinceCode { get; set; }

        /// <summary>
        /// 发货地省
        /// </summary>            
        [Display(Name = "发货地省")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public string ProvinceName { get; set; }

        /// <summary>
        /// 发货地市Code
        /// </summary>            
        [Display(Name = "发货地市Code")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public string CityCode { get; set; }

        /// <summary>
        /// 发货地市
        /// </summary>            
        [Display(Name = "发货地市")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public string CityName { get; set; }

        /// <summary>
        /// 发货地区县Code
        /// </summary>            
        [Display(Name = "发货地区县Code")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public string CountyCode { get; set; }

        /// <summary>
        /// 发货地区县
        /// </summary>            
        [Display(Name = "发货地区县")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public string CountyName { get; set; }

        /// <summary>
        /// 发货地经度
        /// </summary>            
        [Display(Name = "发货地经度")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public double Longitude { get; set; }

        /// <summary>
        /// 发货地纬度
        /// </summary>            
        [Display(Name = "发货地纬度")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public double Latitude { get; set; }

        /// <summary>
        /// 最终目的地省份Code
        /// </summary>            
        [Display(Name = "最终目的地省份Code")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public string EndProvinceCode { get; set; }

        /// <summary>
        /// 最终目的地省
        /// </summary>            
        [Display(Name = "最终目的地省")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public string EndProvinceName { get; set; }

        /// <summary>
        /// 最终目的地市Code
        /// </summary>            
        [Display(Name = "最终目的地市Code")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public string EndCityCode { get; set; }

        /// <summary>
        /// 最终目的地市
        /// </summary>            
        [Display(Name = "最终目的地市")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public string EndCityName { get; set; }

        /// <summary>
        /// 最终目的地区县Code
        /// </summary>            
        [Display(Name = "最终目的地区县Code")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public string EndCountyCode { get; set; }

        /// <summary>
        /// 最终目的地区县
        /// </summary>            
        [Display(Name = "最终目的地区县")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public string EndCountyName { get; set; }

        /// <summary>
        /// 最终目的地经度
        /// </summary>            
        [Display(Name = "最终目的地经度")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public double EndLongitude { get; set; }

        /// <summary>
        /// 最终目的地纬度
        /// </summary>            
        [Display(Name = "最终目的地纬度")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public double EndLatitude { get; set; }

        /// <summary>
        /// 货物SKU
        /// </summary>            
        [Display(Name = "货物SKU")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public string GoodsSKU { get; set; }

        /// <summary>
        /// 货物照片
        /// </summary>            
        [Display(Name = "货物照片")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public string GoodsPhoto { get; set; }

        /// <summary>
        /// 货物名称
        /// </summary>            
        [Display(Name = "货物名称")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public string GoodsName { get; set; }

        /// <summary>
        /// 货物重量
        /// </summary>            
        [Display(Name = "货物重量")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public decimal? GoodsWeight { get; set; }

        /// <summary>
        /// 货物体积
        /// </summary>            
        [Display(Name = "货物体积")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public decimal? GoodsVolume { get; set; }

        /// <summary>
        /// 货物长度
        /// </summary>            
        [Display(Name = "货物长度")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public decimal? GoodsLength { get; set; }

        /// <summary>
        /// 货物宽度
        /// </summary>            
        [Display(Name = "货物宽度")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public decimal? GoodsWidth { get; set; }

        /// <summary>
        /// 货物高度
        /// </summary>            
        [Display(Name = "货物高度")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public decimal? GoodsHeight { get; set; }

        /// <summary>
        /// 货物数量
        /// </summary>            
        [Display(Name = "货物数量")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public int? GoodsCount { get; set; }

        /// <summary>
        /// 货物单价
        /// </summary>            
        [Display(Name = "货物单价")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public decimal? GoodsPrice { get; set; }

        /// <summary>
        /// 货物单位
        /// </summary>            
        [Display(Name = "货物单位")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public string GoodsUnit { get; set; }

        /// <summary>
        /// 商城订单金额
        /// </summary>            
        [Display(Name = "商城订单金额")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public decimal? MallOrderAmount { get; set; }

        /// <summary>
        /// 保价索赔金额总额
        /// </summary>            
        [Display(Name = "保价索赔金额总额")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public decimal? InsuredClaimPayAmount { get; set; }

        /// <summary>
        /// 代收货款服务
        /// </summary>            
        [Display(Name = "代收货款服务")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public bool IsCod { get; set; }

        /// <summary>
        /// 代收货款金额
        /// </summary>            
        [Display(Name = "代收货款金额")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public decimal? CodCost { get; set; }

        /// <summary>
        /// 代收货款费用
        /// </summary>            
        [Display(Name = "代收货款费用")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public decimal? CodCharge { get; set; }

        /// <summary>
        /// 代收货款商品价值凭证
        /// </summary>            
        [Display(Name = "代收货款商品价值凭证")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public string CodGoodsValueCertificates { get; set; }

        /// <summary>
        /// 代收货款金额总额
        /// </summary>            
        [Display(Name = "代收货款金额总额")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public decimal? CodCostAmount { get; set; }

        /// <summary>
        /// 代收货款费用总额
        /// </summary>            
        [Display(Name = "代收货款费用总额")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public decimal? CodChargeAmount { get; set; }

        /// <summary>
        /// 保价货物价值凭证
        /// </summary>            
        [Display(Name = "保价货物价值凭证")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public string InsuredPriceCertificates { get; set; }

        /// <summary>
        /// 保价金额(货物保价金额)
        /// </summary>            
        [Display(Name = "保价金额(货物保价金额)")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public decimal? InsuredPrice { get; set; }

        /// <summary>
        /// 保价金额的千分之10，最低10元
        /// </summary>            
        [Display(Name = "保价金额的千分之10，最低10元")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public decimal? InsuredPriceCharge { get; set; }

        /// <summary>
        /// 保价金额超过上限
        /// </summary>            
        [Display(Name = "保价金额超过上限")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public bool? IsInsuredPriceHigh { get; set; }

        /// <summary>
        /// 保价索赔重量
        /// </summary>            
        [Display(Name = "保价索赔重量")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public int? InsuredClaimWeight { get; set; }

        /// <summary>
        /// 保价索赔件数
        /// </summary>            
        [Display(Name = "保价索赔件数")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public int? InsuredClaimCount { get; set; }

        /// <summary>
        /// 保价索赔金额
        /// </summary>            
        [Display(Name = "保价索赔金额")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public decimal? InsuredClaimPay { get; set; }

        /// <summary>
        /// 保价金额总额(货物保价金额)
        /// </summary>            
        [Display(Name = "保价金额总额(货物保价金额)")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public decimal? InsuredPriceAmount { get; set; }

        /// <summary>
        /// 保价金额总额的千分之10，最低10元
        /// </summary>            
        [Display(Name = "保价金额总额的千分之10，最低10元")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public decimal? InsuredPriceChargeAmount { get; set; }

        /// <summary>
        /// 超时索赔金额总额
        /// </summary>            
        [Display(Name = "超时索赔金额总额")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public decimal? TimeoutClaimPayAmount { get; set; }

        /// <summary>
        /// 保价服务
        /// </summary>            
        [Display(Name = "保价服务")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public bool IsInsuredPrice { get; set; }

        /// <summary>
        /// 订单总额
        /// </summary>            
        [Display(Name = "订单总额")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public decimal? OrderAmount { get; set; }

        /// <summary>
        /// 运费金额总额
        /// </summary>            
        [Display(Name = "运费金额总额")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public decimal? FreightCostAmount { get; set; }

        /// <summary>
        /// 总距离长度
        /// </summary>            
        [Display(Name = "总距离长度")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public decimal TotalDistanceLength { get; set; }

        /// <summary>
        /// 通知司机时间
        /// </summary>            
        [Display(Name = "通知司机时间")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public DateTime? NotifyDriveTime { get; set; }

        /// <summary>
        /// 司机接单时间
        /// </summary>            
        [Display(Name = "司机接单时间")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public DateTime? DriveOrderPromising { get; set; }

        /// <summary>
        /// 车辆出发时间
        /// </summary>            
        [Display(Name = "车辆出发时间")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public DateTime? VehicleStartOutTime { get; set; }

        /// <summary>
        /// 取消订单时间
        /// </summary>            
        [Display(Name = "取消订单时间")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public DateTime? CloseOrderTime { get; set; }

        /// <summary>
        /// 取消订单原因
        /// </summary>            
        [Display(Name = "取消订单原因")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public string CloseOrderContent { get; set; }

        /// <summary>
        /// 发货人付款时间
        /// </summary>            
        [Display(Name = "发货人付款时间")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public DateTime? ShippingPayTime { get; set; }

        /// <summary>
        /// 收货人付款时间
        /// </summary>            
        [Display(Name = "收货人付款时间")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public DateTime? ConsigneePayTime { get; set; }


    }
}
